package com.example.springbooteasycode.zjrc.commonConvert;

/**
 * 用于长度计算转为hex十六进制
 */
public class DecimalToHex {
    public static void main(String[] args) {
        // 十进制转十六进制
        int decimal = 33;
        String hex = Integer.toHexString(decimal);
        System.out.println(hex);

        // 十六进制转十进制数字
        String hexString = "08";
        int decimal10 = hexToDecimal(hexString);
        System.out.println("十六进制字符串 " + hexString + " 对应的十进制数是: " + decimal10);

        // 十六进制转换为字符串
        String ascii = hexToString(hexString);
        System.out.println("十六进制: " + hexString);
        System.out.println("字符串: " + ascii);
    }


    public static int hexToDecimal(String hex) {
        return Integer.parseInt(hex, 16);
    }

    /**
     * 将十六进制字符串转换为ASCII字符串
     * @param hex 十六进制字符串（如："48656C6C6F"）
     * @return ASCII字符串
     */
    public static String hexToString(String hex) {
        StringBuilder result = new StringBuilder();

        // 每两个字符为一组（代表一个字节）
        for (int i = 0; i < hex.length(); i += 2) {
            String byteStr = hex.substring(i, i + 2);
            int byteValue = Integer.parseInt(byteStr, 16);
            result.append((char) byteValue);
        }

        return result.toString();
    }
}
